10 POKE55,00:POKE56,140:CLR 20 DN=PEEK(186):IFDN<8THENDN=8 30 GOTO100 90 POKE 214,YY:POKE211,XX:PRINT"[145]";:RETURN 95 : 100 SYS57812"RADAC.O",DN,0:POKE780,0:POKE781,0:POKE782,152:SYS65493 110 CI=0:REM CI=1, CACHE FETCHED: CI=0, NO CACHE FETCHED 111 SYS38912,"P",1,RT:IFRT>10THENL=111:GOTO9000 115 DIM ST%(400) 116 SP$=" ":HV$=CHR$(255)+CHR$(255)+CHR$(255) 117 HV$=HV$+HV$:HV$=HV$+HV$:HV$=HV$+HV$+CHR$(255) 200 GOTO 2000 1000 PRINT"ANY KEY CONTINUES[146]"; 1010 POKE 198,0:WAIT198,15:GETQ$:PRINT"[145]":PRINT" "; 1020 RETURN 1100 : 1102 REM GET ROUTINE: AT$ =DISPLAY:A1=1=ALPHA:AL=FLD LEN 1103 : 1110 A1$="":A2=0:IFA3<>1 THEN POKE198,0 1115 XX=0:GOSUB90:GOSUB1295:POKE204,0 1120 POKE204,0:WAIT198,15:GET A$ 1125 POKE204,1 1130 A=ASC(A$):IF A=20 THENGOSUB1300:GOTO1195 1132 IF A1=1 AND A=145 THEN A2=4:GOTO1200 1133 IF A1=1 AND A=17 THEN A2=5:GOTO1200 1135 IF A=145 OR A=175 OR A=147 THEN 1120 1140 IF A=13THEN 1200 1141 IF A<32 THEN 1120 1142 IF A=95 THEN A2=9:GOTO1200 1144 IF A=34 THEN 1120 1145 IF A<91 THEN 1148 1146 IF A<193 OR A>218 THEN 1120 1148 IF A1=1 THEN 1180 1150 IF A$="."ORA$="," THEN1180 1160 IF A$ = "-" AND LEN(A1$) = 0 THEN 1180 1170 IF A < 48 OR A > 60 THEN 1120 1180 IF LEN(A1$)>AL-1 THEN 1120 1190 A1$=A1$+A$ 1195 GOSUB1295:IFA3<>1THEN 1120 1196 IF LEN(A1$)=AL THEN RETURN 1197 GOTO 1120 1200 DV=0:L =LEN(A1$):A = 0:AT = 0:P = 0:AN = 1:GOSUB1295 1205 IF A1=1 THEN RETURN 1210 FOR I=1 TO L:A$ = MID$(A1$,I,1) 1215 IF A$="-" THEN AN=-1:GOTO 1260 1220 IFA$=","THEN 1260 1230 IF A$="."THENDV=1:GOTO 1260 1240 IF DV=0 THEN A=VAL(A$):AT = AT*10 + A 1250 IF DV=1 THEN P=P+1:A=VAL(A$):AT = AT + A/(10^P) 1260 NEXT:AT=AT*AN:RETURN 1295 PRINT:PRINT "[145]";AT$;" ";A1$;" [157][157]";:RETURN 1300 L=LEN(A1$):IFL=0THEN RETURN 1310 L=L-1:A1$=MID$(A1$,1,L):RETURN 2000 POKE53281,6:POKE53280,6:PRINT"",CHR$(142) 2010 PRINT "[147] COUPON TRACKER" 2020 PRINT " [163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 2030 PRINT TAB(10);"1. FETCH" 2032 PRINT TAB(10);"2. ADD " 2034 PRINT TAB(10);"3. LOCATE" 2036 PRINT TAB(10);"4. LIST " 2038 PRINT TAB(10);"5. PURGE " 2040 PRINT TAB(10);"6. COMPRESS" 2042 PRINT TAB(10);"7. ARCHIVE" 2044 PRINT TAB(10);"8. QUIT " 2050 PRINT " ENTER NUMBER":POKE198,0 2060 WAIT198,15:GETA$ 2070 IF A$="1"THENGOSUB3200:GOTO2000 2075 IF A$="2"THENGOSUB2500:GOTO2000 2080 IF A$="3"THENGOSUB3400:GOTO2000 2085 IF A$="4"THENGOSUB4200:GOTO2000 2090 IF A$="5"THENGOSUB4500:GOTO2000 2093 IF A$="6"THENGOSUB5000:GOTO2000 2095 IF A$="7"THENGOSUB3000:GOTO2000 2097 IF A$="8"THENGOTO2200 2100 GOTO 2060 2200 PRINT"[147]QUIT......":IF CI THEN 2210 2201 CLOSE15:OPEN15,8,15,"R0:HELLO CONNECT=HELLO CONNECT":INPUT#15,ER:CLOSE15 2202 IFER<>63THENEND 2203 POKE646,PEEK(53281):PRINT"[147]LOAD"CHR$(34)"HELLO CONNECT"CHR$(34)",8" 2204 PRINT"RUN" 2205 POKE631,13:POKE632,13:POKE198,2:END 2210 PRINT " CACHE HAS DATA." 2220 PRINT " DO YOU WISH TO ARCHIVE? (Y/N)":POKE198,0 2230 WAIT198,15:GETA$:IF A$="N" THEN END 2240 GOTO2000 2497 : 2498 :REM ADD 2499 : 2500 IF CI=0 THEN GOSUB2700 2510 PRINT"[147] ":PRINT"ADD NEW COUPON":PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 2520 YY=7:XX=0:GOSUB90:PRINT "ENTER:" 2530 A1=1:YY=8:XX=0:GOSUB90:AL=25:AT$="NAME= " 2540 PRINT AT$:GOSUB1100:PN$=A1$:YY=9:GOSUB90:AT$="EXPIRY DATE (YYMMDD)=" 2550 A1=0:AL=6:PRINTAT$:GOSUB1100:EX=AT 2560 YY=11:GOSUB90:PRINT"FOR PERCENT ENTER RETURN" 2570 YY=12:GOSUB90:AT$="AMOUNT= ":PRINTAT$:GOSUB1100 2580 IF AT<>0 THEN AM%=AT*100:ST%=0:GOTO2600 2590 AT$="[158]PERCENT= ":GOSUB1100:AM%=AT+10000:ST%=1:PRINT"" 2600 I=0 2605 I=I+1:IFST%(I)= 0THEN2610 2606 IF I>400 THEN 2650 2607 GOTO2605 2610 ST%(I)=1:CT%=INT(1000+I) 2620 SYS38912,"T",1,"A",PN$,AM%,EX,CT%,RT:IF RT>10 THEN L=2620:GOTO9000 2630 UP=1:PRINT CHR$(13);"[153] FILE NUMBER IS";I;"":GOSUB1000:RETURN 2640 IFRT<>65THENL=2640:GOTO9000 2650 PRINT" FILE FULL: ITEM NOT ADDED":GOSUB1000:RETURN 2700 PRINT"[147] BUILDING FILE!":PN$="":AM%=0:EX=0:CT%=0:ST%=0 2710 SYS38912,"C",1,RT:SYS38912,"O",1,"SIFI",RT:IFRT>10THENL=2710:GOTO9000 2720 FORI=1 TO 400:ST%(I)=ST%:NEXT 2740 CI=1:RETURN 2997 : 2998 :REM ARCHIVE 2999 : 3000 PRINT"[147]ARCHIVE.....":IF CI=0 THEN 3100 3005 CLOSE15:OPEN15,8,15,"I0":INPUT#15,E,E$,T,S 3010 YY=8:XX=0:GOSUB90:A1=1:AL= 8 3020 AT$=" ENTER FILE NAME:":PRINTAT$:GOSUB1100:IF LEN(A1$)=0 THEN RETURN 3025 SYS38912,"A","2"+ A1$,8,RT 3030 PRINT:I=0:IF RT>10 THEN L=3030:GOTO9000 3040 SYS38912,"C",1,RT:CI=0:SYS38912,"O",1,"I",RT:IF RT>10THENL=3040:GOTO9000 3045 I=I+1:IF I>400 THEN 3060 3050 SYS38912,"T",1,"A",ST%(I),RT:IFRT>10THENL=3050:GOTO9000 3055 PRINT".";:GOTO3045 3060 SYS38912,"A","1"+ A1$,8,RT:IF RT>10 THEN L=3060:GOTO9000 3070 SYS38912,"C",1,RT:RETURN 3100 PRINT " NO CACHE TO ARCHIVE" 3110 PRINT " REQUEST IGNORED!":GOSUB1000:RETURN 3197 : 3198 :REM FETCH 3199 : 3200 PRINT"[147]FETCH....":IF CI=1 THEN 3250 3205 CLOSE15:OPEN15,8,15,"I0":INPUT#15,E,E$,T,S 3210 YY=8:XX=0:GOSUB90:A1=1:AL=09:I=0 3220 AT$=" ENTER FILE NAME:":PRINTAT$:GOSUB1100:IFLEN(A1$)=0THEN RETURN 3225 PRINT: SYS38912,"F","1"+ A1$,8,RT:IF RT>10 THEN 3280 3230 O$="F":FORI=1TO400:SYS38912,"T",1,O$,ST%(I),RT:IFRT>10THENL=3230:GOTO9000 3232 PRINT"."; 3235 O$="R":NEXT:SYS38912,"F","2"+A1$,8,RT:IFRT>10THENL=3235:GOTO9000 3240 CI=1:RETURN 3250 PRINT " CACHE HAS DATA." 3255 PRINT " DO YOU WANT TO ARCHIVE?":PRINT " (Y/N)":POKE198,0 3260 WAIT198,15:GETA$:IF A$="N"THEN3205 3270 RETURN 3280 IFRT<>238THENL=3225:GOTO9000 3300 PRINT:PRINT "FILE NOT FOUND!":GOSUB1000:RETURN 3387 : 3388 :REM LOCATE 3389 : 3390 PRINT"[147]LOCATE.....":RETURN 3400 GOSUB3390 3410 IF CI=1 THEN 3440 3420 PRINT" NO CACHE AVAILABLE,":PRINT" REQUEST IGNORED!":GOSUB1000 3430 RETURN 3440 PRINT " LOCATE BY ([158]N)AME OR ([158]I)NVENTORY #?":POKE 198,0 3450 WAIT198,15:GETA$:IFA$="N"THEN3610 3460 IF A$ <> "I" THEN 3450 3463 AL=3:A1=0:AT$="ENTER NUMBER:":YY=8:XX=0:GOSUB90:PRINTAT$:GOSUB1100 3464 IF AT>400 OR AT<1 THEN PRINT:PRINT"[145]"TAB(15);" ":GOTO3463 3465 N=AT:IFST%(N)<>1THEN 3600 3470 O$="F":CT%=N+1000 3480 SYS38912,"S",1," ",PN$," ",AM%," ",EX,"=",CT%,RT 3481 IFRT>10THEN L=3480:GOTO9000 3500 GOSUB3390:AT$="ITEM FOUND..":PRINT "";AT$ 3510 PRINT "INVENTORY ITEM NO.";N;"" 3520 PRINT "PRODUCT: ";PN$ 3530 YY=INT(EX/10000):MM=INT((EX-YY*10000)/100) 3540 DD=INT(EX-(YY*10000)-(MM*100)) 3550 IF AM%>9999THEN PRINT "VALUE =";AM%-10000;"PERCENT":GOTO3580 3560 P=AM%/100+.001:P$=STR$(P):P$=LEFT$(P$,LEN(P$)-1) 3570 PRINT "VALUE = $";P$ 3580 PRINT "EXPIRY DATE: ";MM;"[157]/";DD;"[157]/";YY 3590 GOSUB4000:RETURN 3600 GOSUB3390:PRINT" ITEM NOT AVAILABLE!":GOSUB1000:RETURN 3610 A1=1:AL=25:A1$="":AT$="ENTER PRODUCT: ":YY=8:XX=0:GOSUB90:GOSUB1100 3620 I=0:O$="F":AL$=LEFT$(A1$+SP$,25):AH$=LEFT$(A1$+HV$,25):PRINT"[158]":J=0 3630 I=I+1:SYS38912,"T",1,O$,PN$,AM%,EX,CT%,RT:IF RT>10 THEN3700 3640 O$="R":IFPN$1999 THEN 3630 3650 IF PN$>AH$THEN 3630 3655 PRINT PN$;:IF AM%>9999THEN PRINT TAB(27);AM%-10000;"%";:GOTO3670 3660 P=AM%/100+.001:P$=STR$(P):P$=LEFT$(P$,LEN(P$)-1):PRINT TAB(26);"$";P$; 3670 PRINT TAB(35);CT%-1000 3680 J=J+1:IFJ>11 THEN GOSUB1000:J=0:GOSUB3390 3690 GOTO3630 3700 PRINT " END OF SEARCH!":GOSUB1000:RETURN 4000 PRINT" ([158]C)ONTINUE ... ([158]D)ELETE ITEM":POKE198,0 4010 WAIT 198,15:GETA$:IF A$="C"THEN RETURN 4020 IF A$<>"D"THEN 4010 4030 E=CT%-1000:CT%=CT%+1000:SYS38912,"T",1,"W",PN$,AM%,EX,CT%,RT 4040 IF RT>10 THENL=4030:GOTO9000 4050 ST%(E)=2:RETURN 4197 : 4198 :REM LIST 4199 : 4200 PRINT "[147]LIST......":IF CI=0THEN4390 4205 PRINT" ([158]A)CTIVE OR ([158]P)URGED ITEMS":POKE 198,0 4210 WAIT 198,15:GETA$:IF A$="A" THEN CL=1000:CH=1500:GOTO4230 4215 IF A$<>"P"THEN 4210 4220 CL=2000:CH=2999 4230 O$="F":GOSUB4400 4240 SYS38912,"T",1,O$,PN$,AM%,EX,CT%,RT:IF RT>10 THEN 4350 4250 O$="R":IF CT%CH THEN 4240 4255 YY=INT(EX/10000):MM=INT((EX-YY*10000)/100) 4256 DD=INT(EX-(YY*10000)-(MM*100)) 4260 PRINT PN$;TAB(34);CT%-CL 4270 PRINT " EXPIRY:";MM;"[157]/";DD;"[157]/";YY; 4280 IF AM%>9999THEN PRINT TAB(25);AM%-10000;"%":GOTO4300 4285 P=AM%/100+.001:P$=STR$(P):P$=LEFT$(P$,LEN(P$)-1) 4291 PRINT TAB(25);"$";P$ 4300 PRINT:J=J+1:IF J<06 THEN 4240 4310 GOSUB1000:GOSUB4400:GOTO4240 4350 PRINT " END OF LIST":GOSUB1000:RETURN 4390 PRINT" NO CACHE AVAILABLE.":PRINT" REQUEST IGNORED!" 4395 GOSUB1000:RETURN 4400 PRINT"[147] COUPON LIST" 4405 PRINT " [183][183][183][183][183][183][183][183][183][183][183]":J=0:RETURN 4487 : 4488 :REM PURGE 4489 : 4490 PRINT "[147]PURGE.....":RETURN 4500 GOSUB4490:A1=0:AL=6:AT$="ENTER DATE (YYMMDD):":O$="F" 4502 IF CI=0 THEN4600 4510 YY=4:XX=0:GOSUB90:GOSUB1100:I=0:YY=8:GOSUB90:K=0 4512 IF AT<300000THENAT =AT+1000000 4515 PRINT " NUMBER DELETED: ";K 4520 I=I+1:SYS38912,"T",1,O$,PN$,AM%,EX,CT%,RT:IF RT>10 THEN 4580 4530 O$="R":IF CT%<1000 OR CT%>1500 THEN 4520 4535 IF EX=999999THEN4520 4537 IF EX<300000THENEX =EX+1000000 4540 IF EX>AT THEN 4520 4550 J=CT%-1000:ST%(J)=2:CT%=CT%+1000:IFEX>999999THENEX=EX-1000000 4560 SYS38912,"T",1,"W",PN$,AM%,EX,CT%,RT:IF RT>10 THEN L=4560:GOTO9000 4570 K=K+1:PRINT "[145]";K;" ":GOTO4520 4580 IF RT<>65 THEN L=4520:GOTO9000 4590 GOSUB1000:RETURN 4600 GOSUB4490:PRINT " NO CACHE TO AVAILABLE," 4610 PRINT " REQUEST IGNORED!":GOSUB1000:RETURN 4997 : 4998 :REM COMPRESS 4999 : 5000 PRINT"[147]COMPRESS......":IFCI=0THEN 5100 5010 SYS38912,"T",1,"C",PN$,AM%,EX,CT%,RT:IFRT>10THEN 5090 5020 IF CT%>1999 THEN GOTO 5050 5030 SYS38912,"R",RT:IFRT>10THEN 5090 5040 GOTO 5020 5050 J=CT%-2000:ST%(J)=0:PRINT PN$;TAB(30);CT%-2000 5060 SYS38912,"D",RT:IFRT>10THEN 5090 5070 GOTO5020 5090 IF RT<>65 THEN L=5000:GOTO9000 5095 GOSUB1000:RETURN 5100 PRINT" NO CACHE AVAILABLE,":PRINT" REQUEST IGNORED!" 5110 GOSUB 1000:RETURN 9000 PRINT"[147]RADAC ERROR ENCOUNTERED" 9010 PRINT "RT=";RT;" LINE #";L 9020 PRINT "CAN'T CONTINUE ":GOSUB1000:SYS42100 10000 OPEN15,8,15,"S0:RADAC DEMO":CLOSE15:SAVE"RADAC DEMO",8:END